<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>对象(object)</title>
</head>

<body>
    <div id="time"></div>
    <script>
        // 基本数据类型：string、number、boolean、undefined、null
        // 引用(复杂)数据类型：object
        // 1.对象的创建
        var obj2 = {
            name: {
                firstName: '张',
                lastName: ['三', { last: '四' }, '五']
            },
            age: 21
        };
        // console.log(obj2.name.lastName[1].last)
        // 2.访问对象的属性
        // console.log(obj2.name);
        // console.log(obj2['name'])
        // console.log(obj2['age'])
        var abc = 'age'
        // console.log(obj2[abc])
        // console.log(obj2.abc)
        // undefined的几种情况：
        // 1.变量声明未赋值 var a;
        // 2.数组元素不存在
        // 3.对象的属性不存在
        // 4.函数参数没有传递
        // 5.函数没有返回值

        // 3.添加对象的属性
        obj2.gender = '男'
        obj2['height'] = 180
        var xuehao = 'id'
        obj2[xuehao] = 123456
        // console.log(obj2)
        // 4.修改对象的属性
        obj2.name = '张三'
        obj2['age'] = 22
        // console.log(obj2)
        // 5.删除对象的属性
        delete obj2.gender
        // console.log(obj2)
        // 6.遍历对象
        for (var key in obj2) {
            console.log(key, obj2[key])
            document.write(key + ':' + obj2[key] + '<br>')
        }

        // Math对象
        // console.log(Math.PI)
        // console.log(Math.random())// 0-1之间的随机数(包含0，不包含1)
        // 获取0-10之间的随机整数
        var num = Math.floor(Math.random() * 10)
        var namelist = ['张三', '李四', '王五', '赵六', '孙七', '周八', '吴九', '郑十', '陈十一', '王十二']
        // console.log(namelist[num])
        // document.write(namelist[num])
        // console.log(Math.floor(3.14))// 向下取整
        // console.log(Math.ceil(3.14))// 向上取整
        // console.log(Math.round(3.14))// 四舍五入
        // console.log(Math.max(1,2,3,4,5))// 最大值
        // console.log(Math.min(1,2,3,4,5))// 最小值
        // 日期对象 Date
        // 构造函数
        var date = new Date();
        var year = date.getFullYear();
        var month = date.getMonth() + 1;
        var day = date.getDate();
        var week = date.getDay();
        var weeks = ['日', '一', '二', '三', '四'];
        document.write(
            `
                ${year}-${month}-${day} 
                星期${weeks[week]}
                ${date.getHours()}:
                ${date.getMinutes()}:
                ${date.getSeconds()}
            `
        )
        // console.log(date.getFullYear())
        // console.log(date.getMonth())
        // console.log(date.getDate())
        // var date2 = new Date('2024-8-23')
        // var date2 = new Date();
        // date2.setDate(11)
        var date2 = new Date('2024-8-23 12:12:12')
        var seconds = Math.floor((date - date2) / 1000); // 总秒数
        var s = seconds % 60; // 秒
        var min = Math.floor(seconds / 60) % 60; // 分
        var hours = Math.floor(seconds / 3600) % 24; // 小时
        var days = Math.floor(seconds / (3600 * 24)); // 天

        console.log(`相差${days}天${hours}小时${min}分${s}秒`);
        // 或者用document.write输出到页面
        document.write(`<br>相差${days}天${hours}小时${min}分${s}秒`);
        // console.log(date.getTime())
        var time = document.getElementById('time');
        setInterval(function () {
            var date2 = new Date('2024-8-23 12:12:12')
            var date = new Date();
            var seconds = Math.floor((date - date2) / 1000); // 总秒数
            var s = seconds % 60; // 秒
            var min = Math.floor(seconds / 60) % 60; // 分
            var hours = Math.floor(seconds / 3600) % 24; // 小时
            var days = Math.floor(seconds / (3600 * 24)); // 天

            console.log(`相差${days}天${hours}小时${min}分${s}秒`);
            // 或者用document.write输出到页面
            time.innerHTML = `相差${days}天${hours}小时${min}分${s}秒`;
        }, 1000)
    </script>
</body>

</html>